﻿using System;

namespace Wpfконфигуратор.Визуализаторы
{
     public static class РасширениеType
    {
        
         public static string ИмяТипа ( this Type тип )
         {
             if ( тип == null ) return null;
             string имя;
             if ( !тип.IsGenericType )
                 имя = тип.Name;
             else
             {
                 имя = тип.Name.Split( new char[] { '`' } )[0] + "<";

                 var genArg = тип.GetGenericArguments();
                 bool первый = true;
                 foreach ( var type in genArg )
                 {
                     if ( первый ) первый = false;
                     else имя += ",";

                     имя += type.IsGenericParameter ? type.Name : ИмяТипа( type );
                 }

                 имя = имя + ">";
             }


             if ( тип.ReflectedType == null ) return имя;
             return ИмяТипа( тип.ReflectedType ) + "+" + имя;
         }
    }
}
